// for of

const arr = [100, 200, 300, 400]

// for (let i of arr) {
//   console.log(i)
// }

// for of可以替代数组的forEach方法，相比forEach,for of可以用break关键字跳出循环

for (const i of arr) {
  console.log(i)
  if (i > 100) {
    break
  }
}


// 遍历 Set

const s = new Set(['foo', 'bar'])

for (const i of s) {
  console.log(i)
}

// 遍历 Map 配合数组结构语法，直接获取键值

const m = new Map()
m.set('foo', '123')
m.set('bar', '345')

for (const [key, value] of m) {
  console.log(key, value)
}

// 普通对象不能被直接 for...of 遍历
// obj is not iterable
const obj = { foo: 123, bar: 456 }

// for (const item of obj) {
//   console.log(item)
// }
